package com.openlogic.common.logic.config;

import javax.xml.ws.Endpoint;

import org.apache.cxf.jaxws.EndpointImpl;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;

import com.openlogic.api.logic.ws.MyService;
import com.openlogic.api.logic.ws.impl.MyServiceImpl;

/**
* @ClassName: CxfConfig
* @Description: WebService服务端配置类，用于测试webService协议使用，如果是三方ws，则不需要遵循该配置
* @author weiyongpeng
* @date 2024年8月7日 上午10:49:33
 */
@Configuration
public class CxfConfig {

	/**
	* 描述：拦截所有以/ws/*开头的soap协议
	* @Title: createServletRegistrationBean
	* @return
	* @author weiyongpeng
	* @date  2024年8月7日 下午4:55:49
	 */
//    @SuppressWarnings({ "rawtypes", "unchecked" })
//	@Bean
//    public ServletRegistrationBean createServletRegistrationBean() {
//        return new ServletRegistrationBean(new CXFServlet(), "/ws/*");
//    }

    /**
    * 描述：把服务接口注入
    * @Title: myService
    * @return
    * @author weiyongpeng
    * @date  2024年8月7日 下午4:56:25
     */
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }

    /**
    * 描述：对外发布服务
    * @Title: endpoint
    * @return
    * @author weiyongpeng
    * @date  2024年8月7日 下午4:56:45
     */
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(myService());
        endpoint.publish("/api");
        return endpoint;
    }

}
